#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 10
#define STR_LEN 256

void strswap(char *s1, char *s2) {
	char cache[STR_LEN] = { 0 };
	strcpy(cache, s1);
	strcpy(s1, s2);
	strcpy(s2, cache);
}

//int enhanced_strcmp(char *s1, char *s2) {
//	if (strlen(s1) != strlen(s2)) return strlen(s1) - strlen(s2);
//	else {
//		int offset = 0, i;
//		for (i = 0; i < N && offset == 0; i++)
//			offset = s1[i] - s2[i];
//		return offset;
//	}
//}

int main() {
	char **arr = malloc(sizeof(char*) * N);
	int i, j;
	for (i = 0; i < N; i++) {
		arr[i] = malloc(sizeof(char) * STR_LEN);
		gets(arr[i]);
	}
	for (i = N - 1; i > 0; i--)
		for (j = 0; j < i; j++)
			if (strcmp(arr[j], arr[j + 1]) > 0/*enhanced_strcmp(arr[j], arr[j + 1]) > 0*/)
				strswap(arr[j], arr[j + 1]);

	printf("\n");

	for (i = 0; i < N; i++) {
		printf("%s\n", arr[i]);
		free(arr[i]);
	}
	free(arr);

	return 0;
}